package com.lwc.activemq.client;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Receiver {
    public static void main(String[] args) throws JMSException {
        // ConnectionFactory ：连接工厂，JMS 用它创建连接  
        ConnectionFactory connectionFactory;
        // Connection ：JMS 客户端到JMS Provider 的连接  
        Connection connection;
        // Session： 一个发送或接收消息的线程  
        Session session;
        // Destination ：消息的目的地;消息发送给谁.  
        Destination destination;
        // 消费者，消息接收者  
        MessageConsumer consumer;

        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD,
                ActiveMQConstants.BROKER_URL);
        // 构造从工厂得到连接对象
        connection = connectionFactory.createConnection();
        // 启动
        connection.start();
        // 获取操作连接
        session = connection.createSession(Boolean.FALSE, Session.CLIENT_ACKNOWLEDGE);
        // 获取session注意参数值xingbo.xu-queue是一个服务器的queue，须在在ActiveMq的console配置
        destination = session.createQueue("queue-test");
//        destination = session.createTopic("topic-test");
        consumer = session.createConsumer(destination);
        System.out.println(consumer);
        while (true) {
            // 设置接收者接收消息的时间，为了便于测试，这里谁定为100s
            TextMessage message = (TextMessage) consumer.receive(Long.MAX_VALUE);
            System.out.println("收到消息" + message.getText());
            session.rollback();
        }
//        connection.close();
    }
}  